// 打印n层汉诺塔问题的最优移动轨迹
public class TowerOfHanoi {

    /*
    三层汉诺塔： 左  中  右   从左到右
    左->右
    左->中
    右->中
    左->右
    中->左
    中->右
    左->右
     */
    public static void hanoi(int n){
        if(n > 0){
            f(n,"左","右","中");
        }
    }

    public static void f(int n, String from, String to, String other){
        if(n >= 1){
            f(n-1,from,other,to);
            System.out.println("移动圆盘 " + n +" 从 "+ from + "到" + to);
            f(n-1,other,to,from);
        }
    }

    public static void main(String[] args) {
        int n = 3;
        hanoi(n);
    }

}
